<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>$(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-freebsd;$(NetCoreAppCurrent)-linux;$(NetCoreAppCurrent)-osx;$(NetCoreAppCurrent)-maccatalyst;$(NetCoreAppCurrent)-ios;$(NetCoreAppCurrent)-tvos;$(NetCoreAppCurrent)</TargetFrameworks>
    <DefineConstants>$(DefineConstants);FEATURE_REGISTRY</DefineConstants>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile>
  </PropertyGroup>

  <!-- DesignTimeBuild requires all the TargetFramework Derived Properties to not be present in the first property group. -->
  <PropertyGroup>
    <TargetPlatformIdentifier>$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)'))</TargetPlatformIdentifier>
    <GeneratePlatformNotSupportedAssemblyMessage Condition="'$(TargetPlatformIdentifier)' == ''">SR.Process_PlatformNotSupported</GeneratePlatformNotSupportedAssemblyMessage>
    <IsiOSLike Condition="'$(TargetPlatformIdentifier)' == 'maccatalyst' or '$(TargetPlatformIdentifier)' == 'ios' or '$(TargetPlatformIdentifier)' == 'tvos'">true</IsiOSLike>
  </PropertyGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' != ''">
    <Compile Include="Microsoft\Win32\SafeHandles\SafeProcessHandle.cs" />
    <Compile Include="System\Collections\Specialized\DictionaryWrapper.cs" />
    <Compile Include="System\Diagnostics\AsyncStreamReader.cs" />
    <Compile Include="System\Diagnostics\DataReceivedEventArgs.cs" />
    <Compile Include="System\Diagnostics\Process.cs" />
    <Compile Include="System\Diagnostics\ProcessInfo.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.cs" />
    <Compile Include="System\Diagnostics\ProcessModule.cs" />
    <Compile Include="System\Diagnostics\ProcessModuleCollection.cs" />
    <Compile Include="System\Diagnostics\ProcessPriorityClass.cs" />
    <Compile Include="System\Diagnostics\ProcessStartInfo.cs" />
    <Compile Include="System\Diagnostics\ProcessThread.cs" />
    <Compile Include="System\Diagnostics\ProcessThreadCollection.cs" />
    <Compile Include="System\Diagnostics\ProcessWindowStyle.cs" />
    <Compile Include="System\Diagnostics\ThreadInfo.cs" />
    <Compile Include="System\Diagnostics\ThreadPriorityLevel.cs" />
    <Compile Include="System\Diagnostics\ThreadState.cs" />
    <Compile Include="System\Diagnostics\ThreadWaitReason.cs" />
    <Compile Include="System\Diagnostics\MonitoringDescriptionAttribute.cs" />
    <Compile Include="System\Collections\Specialized\StringDictionaryWrapper.cs" />
    <Compile Include="$(CommonPath)DisableRuntimeMarshalling.cs"
             Link="Common\DisableRuntimeMarshalling.cs" />
    <Compile Include="$(CommonPath)System\Runtime\Serialization\SerializationGuard.cs"
             Link="Common\System\Runtime\Serialization\SerializationGuard.cs" />
    <Compile Include="$(CoreLibSharedDir)System\PasteArguments.cs"
             Link="System\PasteArguments.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Errors.cs"
             Link="Common\Interop\Windows\Interop.Errors.cs" />
    <Compile Include="$(CommonPath)System\Text\ValueStringBuilder.cs"
             Link="Common\System\Text\ValueStringBuilder.cs" />
    <Compile Include="$(CommonPath)System\Collections\Generic\ArrayBuilder.cs"
             Link="Common\System\Collections\Generic\ArrayBuilder.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'windows'">
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.EnumProcessModulesEx.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.EnumProcessModulesEx.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FormatMessage.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.FormatMessage.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.NtQueryInformationProcess.cs"
             Link="Common\Interop\Windows\NtDll\Interop.NtQueryInformationProcess.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.NtQuerySystemInformation.cs"
             Link="Common\Interop\Windows\NtDll\Interop.NtQuerySystemInformation.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.PROCESS_BASIC_INFORMATION.cs"
             Link="Common\Interop\Windows\NtDll\Interop.PROCESS_BASIC_INFORMATION.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\NtDll\Interop.SYSTEM_PROCESS_INFORMATION.cs"
             Link="Common\Interop\Windows\NtDll\Interop.SYSTEM_PROCESS_INFORMATION.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.EnumWindows.cs"
             Link="Common\Interop\Windows\User32\Interop.EnumWindows.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.GetWindow.cs"
             Link="Common\Interop\Windows\User32\Interop.GetWindow.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.GetWindowLong.cs"
             Link="Common\Interop\Windows\User32\Interop.GetWindowLong.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.GetWindowTextLengthW.cs"
             Link="Common\Interop\Windows\User32\Interop.GetWindowTextLengthW.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.GetWindowTextW.cs"
             Link="Common\Interop\Windows\User32\Interop.GetWindowTextW.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.GetWindowThreadProcessId.cs"
             Link="Common\Interop\Windows\User32\Interop.GetWindowThreadProcessId.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.PostMessage.cs"
             Link="Common\Interop\Windows\User32\Interop.PostMessage.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.IsWindowVisible.cs"
             Link="Common\Interop\Windows\User32\Interop.IsWindowVisible.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.SendMessageTimeout.cs"
             Link="Common\Interop\Windows\User32\Interop.SendMessageTimeout.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.WaitForInputIdle.cs"
             Link="Common\Interop\Windows\User32\Interop.WaitForInputIdle.cs" />
    <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\SafeTokenHandle.cs"
             Link="Microsoft\Win32\SafeHandles\SafeTokenHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Libraries.cs"
             Link="Common\Interop\Windows\Interop.Libraries.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CloseHandle.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.CloseHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.PERF_INFO.cs"
             Link="Common\Interop\Windows\Advapi32\Interop.PERF_INFO.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.IsWow64Process_IntPtr.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.IsWow64Process_IntPtr.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.IsWow64Process_SafeProcessHandle.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.IsWow64Process_SafeProcessHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetExitCodeProcess.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetExitCodeProcess.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetProcessTimes.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetProcessTimes.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetThreadTimes.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetThreadTimes.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetStdHandle.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetStdHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreateProcess.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.CreateProcess.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.TerminateProcess.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.TerminateProcess.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetCurrentProcess.cs"
             Link="Common\Interop\Windows\kernel32\Interop.GetCurrentProcess.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.OpenProcess.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.OpenProcess.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.EnumProcesses.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.EnumProcesses.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetModuleInformation.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetModuleInformation.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetModuleBaseName.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetModuleBaseName.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetModuleFileNameEx.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetModuleFileNameEx.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetProcessWorkingSetSizeEx.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.SetProcessWorkingSetSizeEx.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetProcessWorkingSetSizeEx.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetProcessWorkingSetSizeEx.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetProcessAffinityMask.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.SetProcessAffinityMask.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetProcessAffinityMask.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetProcessAffinityMask.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetProcessId.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetProcessId.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetThreadPriorityBoost.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetThreadPriorityBoost.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetThreadPriorityBoost.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.SetThreadPriorityBoost.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetProcessPriorityBoost.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetProcessPriorityBoost.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetProcessPriorityBoost.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.SetProcessPriorityBoost.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.OpenThread.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.OpenThread.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetThreadPriority.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.SetThreadPriority.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetThreadPriority.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetThreadPriority.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetThreadAffinityMask.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.SetThreadAffinityMask.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetThreadIdealProcessor.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.SetThreadIdealProcessor.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetPriorityClass.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetPriorityClass.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetPriorityClass.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.SetPriorityClass.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.DuplicateHandle_SafeFileHandle.cs"
             Link="Common\Interop\Windows\kernel32\Interop.DuplicateHandle_SafeFileHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.DuplicateHandle_SafeWaitHandle.cs"
             Link="Common\Interop\Windows\kernel32\Interop.DuplicateHandle_SafeWaitHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.ProcessWaitHandle.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.ProcessWaitHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.OpenProcessToken.cs"
             Link="Common\Interop\Windows\Advapi32\Interop.OpenProcessToken.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.LookupPrivilegeValue.cs"
             Link="Common\Interop\Windows\Advapi32\Interop.LookupPrivilegeValue.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.AdjustTokenPrivileges.cs"
             Link="Common\Interop\Windows\Advapi32\Interop.AdjustTokenPrivileges.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetComputerName.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetComputerName.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetProcessName.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetProcessName.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetConsoleCP.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetConsoleCP.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetConsoleOutputCP.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetConsoleOutputCP.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.CreateProcessWithLogon.cs"
             Link="Common\Interop\Windows\Advapi32\Interop.CreateProcessWithLogon.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.BOOL.cs"
             Link="Common\Interop\Windows\Interop.BOOL.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SECURITY_ATTRIBUTES.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.SECURITY_ATTRIBUTES.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.LUID.cs"
             Link="Common\Interop\Windows\Advapi32\Interop.LUID.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.LUID_AND_ATTRIBUTES.cs"
             Link="Common\Interop\Windows\Advapi32\Interop.LUID_AND_ATTRIBUTES.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.TOKEN_PRIVILEGE.cs"
             Link="Common\Interop\Windows\Advapi32\Interop.TOKEN_PRIVILEGE.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.Constants.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.Constants.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreatePipe_SafeFileHandle.cs"
             Link="Common\Interop\Windows\kernel32\Interop.CreatePipe.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.ThreadOptions.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.ThreadOptions.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.HandleTypes.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.HandleTypes.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.ProcessOptions.cs"
             Link="Common\Interop\Windows\Advapi32\Interop.ProcessOptions.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.HandleOptions.cs"
             Link="Common\Interop\Windows\kernel32\Interop.ProcessOptions.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.MultiByteToWideChar.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.MultiByteToWideChar.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.UNICODE_STRING.cs"
             Link="Common\Interop\Interop.UNICODE_STRING.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.WideCharToMultiByte.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.WideCharToMultiByte.cs" />
    <Compile Include="$(CommonPath)System\Text\ConsoleEncoding.cs"
             Link="Common\System\Text\ConsoleEncoding.cs" />
    <Compile Include="$(CommonPath)System\Text\EncodingHelper.Windows.cs"
             Link="Common\System\Text\EncodingHelper.Windows.cs" />
    <Compile Include="$(CommonPath)System\Text\OSEncoding.Windows.cs"
             Link="Common\System\Text\OSEncoding.Windows.cs" />
    <Compile Include="$(CommonPath)System\Text\OSEncoder.cs"
             Link="Common\System\Text\OSEncoder.cs" />
    <Compile Include="$(CommonPath)System\Text\DBCSDecoder.cs"
             Link="Common\System\Text\DBCSDecoder.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetCPInfoEx.cs"
             Link="Common\Interop\Windows\Kernel32\Interop.GetCPInfoEx.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.MAX_PATH.cs"
             Link="Common\Interop\Windows\Interop.MAX_PATH.cs" />
    <Compile Include="$(CommonPath)System\HResults.cs"
             Link="Common\System\HResults.cs" />
    <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\SafeThreadHandle.cs"
             Link="Microsoft\Win32\SafeHandles\SafeThreadHandle.cs" />
    <Compile Include="Microsoft\Win32\SafeHandles\SafeProcessHandle.Windows.cs" />
    <Compile Include="System\Diagnostics\PerformanceCounterLib.cs" />
    <Compile Include="System\Diagnostics\Process.Windows.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.Windows.cs" />
    <Compile Include="System\Diagnostics\ProcessStartInfo.Windows.cs" />
    <Compile Include="System\Diagnostics\ProcessThread.Windows.cs" />
    <Compile Include="System\Diagnostics\ProcessThreadTimes.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' != '' and '$(TargetPlatformIdentifier)' != 'windows'">
    <Compile Include="Microsoft\Win32\SafeHandles\SafeProcessHandle.Unix.cs" />
    <Compile Include="System\Diagnostics\Process.Unix.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.Unix.cs" />
    <Compile Include="System\Diagnostics\ProcessThread.Unix.cs" />
    <Compile Include="System\Diagnostics\ProcessStartInfo.Unix.cs" />
    <Compile Include="System\Diagnostics\ProcessWaitHandle.Unix.cs" />
    <Compile Include="System\Diagnostics\ProcessWaitState.Unix.cs" />
    <Compile Include="$(CommonPath)System\IO\StringParser.cs"
             Link="Common\System\IO\StringParser.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\Interop.Libraries.cs"
             Link="Common\Interop\Unix\Interop.Libraries.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\Interop.Errors.cs"
             Link="Common\Interop\Unix\Interop.Errors.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Close.cs"
             Link="Common\Interop\Unix\Interop.Close.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\Interop.DefaultPathBufferSize.cs"
             Link="Common\Interop\Unix\Interop.DefaultPathBufferSize.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetHostName.cs"
             Link="Common\Interop\Unix\Interop.GetHostName.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.SysConf.cs"
             Link="Common\Interop\Unix\Interop.SysConf.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ForkAndExecProcess.cs"
             Link="Common\Interop\Unix\Interop.ForkAndExecProcess.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetGroupList.cs"
             Link="Common\Interop\Unix\Interop.GetGroupList.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetPwUid.cs"
             Link="Common\Interop\Unix\Interop.GetPwUid.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetSetPriority.cs"
             Link="Common\Interop\Unix\Interop.GetSetPriority.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetSid.cs"
             Link="Common\Interop\Unix\Interop.GetSid.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.InitializeTerminalAndSignalHandling.cs"
             Link="Common\Interop\Unix\Interop.InitializeTerminalAndSignalHandling.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Kill.cs"
             Link="Common\Interop\Unix\Interop.Kill.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ReadLink.cs"
             Link="Common\Interop\Unix\Interop.ReadLink.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.RegisterForSigChld.cs"
             Link="Common\Interop\Unix\Interop.RegisterForRegisterForSigChld.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.SetDelayedSigChildConsoleConfigurationHandler.cs"
             Link="Common\Interop\Unix\Interop.SetDelayedSigChildConsoleConfigurationHandler.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ResourceLimits.cs"
             Link="Common\Interop\Unix\Interop.ResourceLimits.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.PathConf.cs"
             Link="Common\Interop\Unix\Interop.PathConf.cs" />
    <Compile Include="$(CommonPath)System\Text\ValueUtf8Converter.cs"
             Link="Common\System\Text\ValueUtf8Converter.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.WaitId.cs"
             Link="Common\Interop\Unix\Interop.WaitId.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.WaitPid.cs"
             Link="Common\Interop\Unix\Interop.WaitPid.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Access.cs"
             Link="Common\Interop\Unix\System.Native\Interop.Access.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.Stat.cs"
             Link="Common\Interop\Unix\Interop.Stat.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetEUid.cs"
             Link="Common\Interop\Unix\Interop.GetEUid.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.IsMemberOfGroup.cs"
             Link="Common\Interop\Unix\Interop.IsMemberOfGroup.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' != '' and '$(TargetPlatformIdentifier)' != 'windows' and '$(IsiOSLike)' != 'true'">
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.ConfigureTerminalForChildProcess.cs"
             Link="Common\Interop\Unix\Interop.ConfigureTerminalForChildProcess.cs" />
    <Compile Include="System\Diagnostics\Process.ConfigureTerminalForChildProcesses.Unix.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' != '' and '$(TargetPlatformIdentifier)' != 'windows' and '$(IsiOSLike)' == 'true'">
    <Compile Include="System\Diagnostics\Process.ConfigureTerminalForChildProcesses.iOS.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'linux'">
    <Compile Include="System\Diagnostics\Process.Linux.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.Linux.cs" />
    <Compile Include="System\Diagnostics\ProcessThread.Linux.cs" />
    <Compile Include="$(CommonPath)Interop\Linux\cgroups\Interop.cgroups.cs"
             Link="Common\Interop\Linux\Interop.cgroups.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.MountPoints.FormatInfo.cs"
             Link="Common\Interop\Unix\System.Native\Interop.MountPoints.FormatInfo.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.UnixFileSystemTypes.cs"
             Link="Common\Interop\Unix\System.Native\Interop.UnixFileSystemTypes.cs" />
    <Compile Include="$(CommonPath)Interop\Linux\procfs\Interop.ProcFsStat.cs"
             Link="Common\Interop\Linux\Interop.ProcFsStat.cs" />
    <Compile Include="$(CommonPath)Interop\Linux\procfs\Interop.ProcFsStat.ParseMapModules.cs"
             Link="Common\Interop\Linux\Interop.ProcFsStat.ParseMapModules.cs" />
    <Compile Include="$(CommonPath)Interop\Linux\procfs\Interop.ProcFsStat.TryReadStatusFile.cs"
             Link="Common\Interop\Linux\Interop.ProcFsStat.TryReadStatusFile.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.GetBootTimeTicks.cs"
             Link="Common\Interop\Linux\Interop.GetBootTimeTicks.cs" />
    <Compile Include="$(CommonPath)Interop\Unix\System.Native\Interop.SchedGetSetAffinity.cs"
             Link="Common\Interop\Linux\Interop.SchedGetSetAffinity.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'osx' or '$(TargetPlatformIdentifier)' == 'maccatalyst'">
    <Compile Include="System\Diagnostics\Process.BSD.cs" />
    <Compile Include="System\Diagnostics\Process.OSX.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.BSD.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.OSX.cs" />
    <Compile Include="System\Diagnostics\ProcessThread.OSX.cs" />
    <Compile Include="$(CommonPath)Interop\OSX\Interop.libproc.cs"
             Link="Common\Interop\OSX\Interop.libproc.cs" />
    <Compile Include="$(CommonPath)Interop\OSX\Interop.libproc.GetProcessInfoById.cs"
             Link="Common\Interop\OSX\Interop.libproc.GetProcessInfoById.cs" />
    <Compile Include="$(CommonPath)Interop\OSX\Interop.libSystem.cs"
             Link="Common\Interop\OSX\Interop.Interop.libSystem.cs" />
    <Compile Include="$(CommonPath)Interop\OSX\Interop.Libraries.cs"
             Link="Common\Interop\OSX\Interop.Libraries.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'windows'">
    <Compile Include="$(CommonPath)Interop\Windows\Shell32\Interop.ShellExecuteExW.cs"
             Link="Common\Interop\Windows\Shell32\Interop.ShellExecuteExW.cs" />
    <Compile Include="System\Diagnostics\Process.Win32.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.Win32.cs" />
    <Compile Include="System\Diagnostics\ProcessStartInfo.Win32.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' != '' and '$(TargetPlatformIdentifier)' != 'ios' and '$(TargetPlatformIdentifier)' != 'tvos'">
    <Compile Include="System\Diagnostics\Process.NonUap.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'freebsd'">
    <Compile Include="System\Diagnostics\Process.BSD.cs" />
    <Compile Include="System\Diagnostics\Process.FreeBSD.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.BSD.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.FreeBSD.cs" />
    <Compile Include="System\Diagnostics\ProcessThread.FreeBSD.cs" />
    <Compile Include="$(CommonPath)Interop\BSD\System.Native\Interop.Sysctl.cs"
             Link="Common\Interop\BSD\System.Native\Interop.Sysctl.cs" />
    <Compile Include="$(CommonPath)Interop\FreeBSD\Interop.Process.cs"
             Link="Common\Interop\FreeBSD\Interop.Process.cs" />
    <Compile Include="$(CommonPath)Interop\FreeBSD\Interop.Process.GetProcInfo.cs"
             Link="Common\Interop\FreeBSD\Interop.Process.GetProcInfo.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'ios' or '$(TargetPlatformIdentifier)' == 'tvos'">
    <Compile Include="System\Diagnostics\Process.iOS.cs" />
    <Compile Include="System\Diagnostics\ProcessManager.iOS.cs" />
    <Compile Include="System\Diagnostics\ProcessThread.iOS.cs" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="Microsoft.Win32.Primitives" />
    <Reference Include="Microsoft.Win32.Registry" />
    <Reference Include="System.Collections" />
    <Reference Include="System.Collections.Concurrent" />
    <Reference Include="System.Collections.NonGeneric" />
    <Reference Include="System.Collections.Specialized" />
    <Reference Include="System.ComponentModel.Primitives" />
    <Reference Include="System.Diagnostics.FileVersionInfo" />
    <Reference Include="System.IO.FileSystem.DriveInfo" />
    <Reference Include="System.Memory" />
    <Reference Include="System.IO.Pipes" />
    <Reference Include="System.Runtime" />
    <Reference Include="System.Runtime.InteropServices" />
    <Reference Include="System.Text.Encoding.Extensions" />
    <Reference Include="System.Threading" />
    <Reference Include="System.Threading.Thread" />
    <Reference Include="System.Threading.ThreadPool" />
  </ItemGroup>

</Project>
